package com.ruoyi.system.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.request.realtimevideo.GetDeviceInfoParam;
import com.ruoyi.system.domain.RealtimePositioning;
import com.ruoyi.system.domain.VehicleManagement;
import com.ruoyi.system.domain.request.vehicle.NumberPlateExistParam;
import com.ruoyi.system.domain.vo.common.ComDvoName;

/**
 * 车辆管理Service接口
 * 
 * @author wp
 * @date 2023-08-10
 */
public interface IVehicleManagementService extends IService<VehicleManagement> {

    public List<VehicleManagement> selectList(VehicleManagement vehicleManagement);

    public VehicleManagement selectOne(Long id);

    public boolean updateVehicle(VehicleManagement vehicleManagement);

    public void deleteVehicle(Long[] ids);

    int getExpireVehicleCount(VehicleManagement model);

    /**
     * 根据车牌号获取车辆
     */
    List<VehicleManagement> listByNumberPlate(String numberPlate);


    /**
     * 根据公司查所属车辆或者根据车辆查所属公司
     */
    List<ComDvoName> listCompanyOrVehicle(GetDeviceInfoParam param);

    /**
     * 根据设备号查询车辆定位信息
     */
    RealtimePositioning getPositionByDeviceId(String deviceId);

    /**
     * 地图车辆列表
     */
    List<VehicleManagement> listMapVehicle(VehicleManagement vehicleManagement);

    /**
     * 监管对象名称重复校验
     * @param param
     */
    public void checkExistNumberPlate(NumberPlateExistParam param);

    /**
     * 根据设备号获取监管对象id及名称
     * @return
     */
    public VehicleManagement getVehicleIdAndNumberPlate(String deviceId);
}
